PulseCMSをEC2にインストールしてみた。
こんにちは、ウサギ(わさびちゃん)のお世話係、兼、出張ブロガー いわもんです。
今日もわさびちゃんは元気です!
先日開催されたCMS夏祭りにて「PulseCMS」というCMSを知りました。
(CMS夏祭りのレポートはこちらをご覧ください。)
とても面白いCMSでしたので、早速EC2にインストールしてみました。
PulseCMSとは?
PulseCMSは、PHPで作成されたDatabeseを使わない非常に高速で、簡単なCMSです。
システム要件
PulseCMSの稼働に必要なシステムは、テストツールが用意されているので実行することで確認できますが、
「Apache2.2 + PHP5.3以上」の、ごく一般的な構成で稼働します。
EC2インスタンスは、最新のAmazon LinuxAMI を利用しました。
Pulse Server Requirements
実際にテストツールを実行した結果がこちらになります、必要なPHPモジュールもPHP-GDのみで大丈夫な様です。
SpecYour Server | Requirement | |
---|---|---|
Server Type | nginx/1.8.1 | Apache |
PHP Version | 5.6.25 | PHP 5 |
File Uploads | OnUploads | required |
Safe Mode | OffSafe mode | must be off |
Magic Quotes | OffMagic quotes | must be off |
GD Support | GD Enabled | GD is required for the gallery to function. |
ミドルウェアのインストール
EC2含め下記のコマンドのみで、必要なミドルウェアはインストールできます。
# yum install httpd php php-gd -y
PulseCMSのインストール
まずは、こちらの動画をご覧ください。
1・アップロード
ダウンロードしてきた「pulse.zip」をWEBサーバーの所定のディレクトリに解凍します。
2・設定
「config.php」を設定し管理画面のパスワードを設定します。
pulsecmsをサブディレクトリに配置している場合は、PATHを変更しましょう。
3・完了
設定したドメインへブラウザからアクセスをするとデモサイトが見れます。
また、管理画面は「hogehoge.com/admin」となります。
動画を見ていただいて分かる通り、インストールもDBを利用しないので解凍したディレクトリを設置するだけです。
ブラウザからPluseCMSが見れましたか?インストールも設定もとても簡単で、高速ですね。
PulseCMSをNginxで動かしてみる
Apache環境でも非常に高速で動作するPluseCMSですが、さらに高速なWEBサーバーのNginxで動かすと、どうでしょうか?
Apacheでの稼働にはリライトを利用しています。
Nginxで利用するためには、Apache用に書かれたリライトの設定をNginx用に変換する必要があります。
Apacheの場合
Apacheの場合は、.htacsess ファイルに下記の様な記載が必要になります。
RewriteEngine On # RewriteBase / RewriteRule ^blog-page-([^-]*)$ ?page=$1&p=blog [L] RewriteRule ^blog-([^-]*)+? ?d=$1&p=blog [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?p=$1 [L]
Nginxの場合
Nginxは、.htacsessの様な仕組みがないため、Nginxの設定ファイルにある「server」セクション内に、下記のリライトの設定を追記します。
location / { index index.php; rewrite ^/blog-page-([^-]*)$ /?page=$1&p=blog break; rewrite ^/blog-([^-]*)+? /?d=$1&p=blog break; if (!-e $request_filename){ rewrite ^(.*)$ /index.php?p=$1 last; } }
Nginxでも上記の設定を行うことで、PulseCMSが表示できました。 ※Nginxの全般的な設定は割愛しました。
ApacheとNginxの比較
では、Apache・Nginxのそれぞれの環境があるので、比較をしてみます。 合わせて、PHP5.6 PHP7.0 それぞれでのベンチマークも実施してみました。
グラフ
下記は、それぞれ個別のEC2(同一インスタンスタイプ)に構築されたPulseCMSとHTMLファイルに対して、
同一のマシンよりApacheBenchを実行し、その際の結果をグラフ化したものです。
※数値が高い方が高速
考察
PHP7とPHP5.6の結果がほぼ同じとなっているのは、HTMLへの結果もほぼ同じ結果となっていることから推測して、 Fast-CGIキャッシュに保存された結果が、静的コンテンツ(HTMLファイル)と同じ速度で配信され このテスト環境での限界値となっているのではと推測されます。 ※数値の微妙な差はインスタンスとホストの差異と判断しました。
EC2のインスタンスタイプは、テスト用でしたのでt2.smallを利用しましたが、 テスト結果からも分かる通り、t2.smallインスタンスでも非常に高速です。
まとめ
PluseCMSは、インストール・利用ともとても簡単なCMSです。 ただし、DataBaseを利用していないため、検索などの機能は残念ながらありません。 しかし、今回のベンチマーク結果から分かる通り、 パフォーマンスも非常に優秀で用途に合うのであれば、最適なCMSになるのではと思います。
追記
PulseCMS 作者の方からコメントをいただきました。 「検索などの機能は。。。COMING SOON!」 とのことですので、検索機能が実装されると、より使いやすく利用範囲も広がりますね。 今後もPulseCMSが楽しみです。